const formatTime = date => {
  const year = date.getFullYear()
  const month = date.getMonth() + 1
  const day = date.getDate()
  const hour = date.getHours()
  const minute = date.getMinutes()
  const second = date.getSeconds()

  return `${[year, month, day].map(formatNumber).join('/')} ${[hour, minute, second].map(formatNumber).join(':')}`
}

const formatNumber = n => {
  n = n.toString()
  return n[1] ? n : `0${n}`
}

// 格式化时间显示（新版本）
const formatTimeNew = (date) => {
    if (!date) return ''

    // 处理 "2025-11-07 22:59" 格式的字符串
    if (typeof date === 'string') {
        return formatDateTimeString(date)
    }

    // 处理 Date 对象
    const d = new Date(date)
    return formatDateTimeString(d.toISOString())
}

// 格式化日期时间字符串
const formatDateTimeString = (dateTimeStr) => {
    if (!dateTimeStr) return ''

    try {
        // 处理 "2025-11-07 22:59" 格式
        if (dateTimeStr.includes(' ')) {
            const [datePart, timePart] = dateTimeStr.split(' ')
            const [year, month, day] = datePart.split('-')
            const [hour, minute] = timePart.split(':')

            return `${month}月${day}日 ${hour}:${minute}`
        }

        // 处理 ISO 格式
        const date = new Date(dateTimeStr)
        const month = (date.getMonth() + 1).toString().padStart(2, '0')
        const day = date.getDate().toString().padStart(2, '0')
        const hour = date.getHours().toString().padStart(2, '0')
        const minute = date.getMinutes().toString().padStart(2, '0')

        return `${month}月${day}日 ${hour}:${minute}`
    } catch (error) {
        console.error('时间格式化错误:', error)
        return dateTimeStr
    }
}

// 显示相对时间（用于时间线）
const formatRelativeTime = (date) => {
    if (!date) return ''

    const now = new Date()
    let targetDate = date

    // 如果是字符串，转换为Date对象
    if (typeof date === 'string') {
        targetDate = new Date(date.replace(' ', 'T') + ':00')
    }

    const diff = now.getTime() - targetDate.getTime()

    // 1分钟内
    if (diff < 60000) {
        return '刚刚'
    }

    // 1小时内
    if (diff < 3600000) {
        return Math.floor(diff / 60000) + '分钟前'
    }

    // 24小时内
    if (diff < 86400000) {
        return Math.floor(diff / 3600000) + '小时前'
    }

    // 7天内
    if (diff < 604800000) {
        return Math.floor(diff / 86400000) + '天前'
    }

    // 超过7天显示具体日期
    return formatDateTimeString(date)
}

// 显示成功提示
const showSuccess = (title) => {
    wx.showToast({
        title: title,
        icon: 'success',
        duration: 2000
    })
}

// 显示错误提示
const showError = (title) => {
    wx.showToast({
        title: title,
        icon: 'none',
        duration: 2000
    })
}

// 显示加载中
const showLoading = (title = '加载中') => {
    wx.showLoading({
        title: title,
        mask: true
    })
}

// 隐藏加载
const hideLoading = () => {
    wx.hideLoading()
}

module.exports = {
  // 原有功能
  formatTime,        // 原格式：YYYY/MM/DD HH:mm:ss
  formatNumber,
  
  // 新增功能
  formatTimeNew,     // 新格式：MM月DD日 HH:mm
  formatDateTimeString,
  formatRelativeTime,
  showSuccess,
  showError,
  showLoading,
  hideLoading
}